home *** CD-ROM | disk | FTP | other *** search
- 91-07/3dm.info
-
- > Also, is there a system yet that allows the user to build an environment
- > from within it? I know most make you build it from outside using a mouse-
- > driven CAD-type program and then you go into it.
- >
- > Rudy
- > darken@seas.gwu.edu
-
- I'm a grad student at the UNC-Chapel Hill Computer Science department, and I
- can proudly attest to the fact that there is such a system. It was written
- in the Spring 1991 semester by Jeff Butterworth, Steve Hench, Marc Olano and
- myself for a COMP 145 Software Engineering project. The program, called 3dm
- (for 3D Modeler) runs using VPL Eyephones and a 6D mouse that consists of
- a Polhemus in a billiard ball with two buttons. The program runs on Pixel
- Planes 5, a custom graphics engine developed here at UNC. Pixel Planes 5 can
- display up to 1,000,000 (yes, 1 million) shaded (phong with specular
- highlights) polygons (of any size) per second on the screen. Pixel Planes 5
- supports up to four viewpoints (i.e. two users with stereo vision).
-
- 3dm's virtual world includes a "toolbox" which is a rectangular palette like
- those found in most Macintosh drawing applications. The toolbox cells
- contain 3D icons that represent tools (extended modes of operation) and
- commands (which execute immediately). The toolbox can be grabbed and
- repositioned, and "locked" so that it follows the user at a fixed distance
- and is (almost) always within reach.
-
- 3dm models consist entirely of triangles. Pixel Planes 5 supports n-gons,
- and support in 3dm will probably be added soon. The main tool in 3dm is the
- Mark tool, which can "mark" triangle vertices and groups of vertices in a
- model. A triangle counts as marked when all of its vertices are marked.
- Vertices near the cursor (a 3D arrow) are tracked -- each vertex hilites when
- the cursor is near it and the cursor snaps to its position. Marked vertices
- and triagles can then be moved with this tool. Vertices can also be moved
- individually to deform objects (like sculpting). Many vertices can be
- marked at once by dragging out a wire frame box to mark all vertices within
- it.
-
- Objects can be created with the Extrusion tool. The user can define edges
- (or mark existing edges) by clicking at the vertices, and dragging then
- creates a surface between them. A Triangle tool allows the creation of
- individual triangles and rapid creation of triangle strips. Because of vertex
- tracking, triangles (and pretty much any other object that is created) can be
- easily connected to existing vertices. Marked triangles can be scaled up or
- down with the Resize tool (which may be incorporated into the Mark tool by
- giving selected objects "resize handles" like on the Macintosh).
-
- There is also a Box tool for dragging out 6-sided boxes. A Sphere tool
- allows the user to create polygonal spheres. Pixel Planes 5 supports
- spheres as a primitive, but they cannot be sculpted and deformed. (3dm uses
- small sphere primitives to indicate a vertex is marked, BTW). Other tools
- may be added that allow other high-level objects to be created easily.
-
- Flying around the virutal world is accomplished with the Fly tool -- you
- fly in the direction you point and click. The virtual world may be grabbed
- as a whole and rotated with the Rotate World tool. The world scaling can
- be controlled with the Scale World tool, so you can see your virtual objects
- from the point of view of an ant or Godzilla.
-
- Clipboard commands (Cut, Copy, Paste, Erase) are supported, as are infinite
- levels of Undo and Redo. There is a Color Selector menu for changing
- triangles' color. Pixel Planes 5 also supports textures (though this slows
- down the frame rate somewhat), although they has not yet been incorporated
- into 3dm.
-
- Triangles can be grouped with the Group command, and group hierarchies can be
- created with the Parent command. By copying and pasting a selected group,
- another instance of the group is created. All instances are automatically
- updated when one is modified.
-
- Precision ("I want to click right...there...dang!") has been a big problem,
- considering the jitteryness of the Polhemus. It's really easy to make
- "natural-looking" (read: asymetrical :-) things (like a tree), but pretty hard
- to make symetrical things (like cars or planes). Vertex tracking helps a
- *LOT*. The box and other high-level-object creation tools are also useful.
- Sometimes it helps to scale the world up and work with the model at a larger
- scale. But with the help of snap-to-gridding, a floor plan of a building can
- be drawn on a plane and extruded up at right angles -- instant walls. We have
- several ideas for other constraints (like virutal mirrors for creating
- symmetrical objects) in the works.
-
- The toolbox icons are not very intuitive to first-time users, so we have
- thought about putting many of the commands into pull-down text menus. The
- extremely low resolution of the Eyephones makes it difficult to display text
- unless it is quite large in the virual world. Text will definitely be used to
- some extent, however. Also on the wish list is a virtual keyboard, for
- entering file and group names, and a virtual "standard file" interface like
- on the Mac. This summer I wrote high-level routines for easily creating and
- manipulating virtual "windows"/palettes (like the toolbox), controls (like
- each icon cell in the toolbox), and pull-down menus, so I suspect these
- wish-list features are not very far off at all.
-
- 3dm, and many other absolutely staggeringly amazing applications will be
- on display at the Virtual Reality Applications Gallery at SIGGRAPH '91.
- I hope to see everyone there. A spendid time is guaranteed for all. ;-)
-
- Later,
- Drew
-
- --
- Drew Davidson \\ HELP FULLY INFORM JURORS! TELL YOUR FRIENDS:
- davidson@cs.unc.edu \\ As a juror, you have the right to vote NOT GUILTY
- ** LEGALIZE TRUTH ** \\ if you believe the law broken is unjust or wrongly
- * FULLY INFORM JURORS * \\ applied, regardless of the facts of the case.
-
-